package com.work.biz.domain;

import java.util.List;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.work.common.core.domain.BaseEntity;

import javax.validation.constraints.NotBlank;

/**
 * 通知信息对象 biz_notice
 *
 * @author lee
 * @date 2021-04-22
 */
@ApiModel
public class BizNotice extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 通知ID
     */
    private Long noticeId;

    /**
     * 通知标题
     */
    @NotBlank(message = "通知标题不能为空")
    @ApiModelProperty(required = true, value = "通知标题")
    private String noticeTitle;

    /**
     * 通知类型（1文字通知，2文档通知）
     */
    @NotBlank(message = "通知类型不能为空")
    @ApiModelProperty(required = true, value = "通知类型（1 文字通知，2 文档通知）")
    private String noticeType;

    /**
     * 通知内容
     */
    @NotBlank(message = "通知内容不能为空")
    @ApiModelProperty(required = true, value = "通知内容")
    private String noticeContent;

    /**
     * 通知状态（0正常 1关闭）
     */
    private String status;

    /**
     * 创建者ID
     */
    private Long creatorId;
    /**
     * 创建者姓名
     */
    private String creatorName;

    /**
     * 已读数量
     */
    private Long readNum;
    /**
     * 未读数量
     */
    private Long unreadNum;

    /**
     * 班级ID
     */
    @ApiModelProperty(value = "班级ID")
    private Long[] clazzIds;

    /**
     * 通知信息详情信息
     */
    private List<BizNoticeDetail> details;

    public void setNoticeId(Long noticeId) {
        this.noticeId = noticeId;
    }

    public Long getNoticeId() {
        return noticeId;
    }

    public void setNoticeTitle(String noticeTitle) {
        this.noticeTitle = noticeTitle;
    }

    public String getNoticeTitle() {
        return noticeTitle;
    }

    public void setNoticeType(String noticeType) {
        this.noticeType = noticeType;
    }

    public String getNoticeType() {
        return noticeType;
    }

    public void setNoticeContent(String noticeContent) {
        this.noticeContent = noticeContent;
    }

    public String getNoticeContent() {
        return noticeContent;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public Long getCreatorId() {
        return creatorId;
    }

    public void setCreatorId(Long creatorId) {
        this.creatorId = creatorId;
    }

    public String getCreatorName() {
        return creatorName;
    }

    public void setCreatorName(String creatorName) {
        this.creatorName = creatorName;
    }

    public List<BizNoticeDetail> getDetails() {
        return details;
    }

    public void setDetails(List<BizNoticeDetail> details) {
        this.details = details;
    }

    public Long getReadNum() {
        return readNum;
    }

    public void setReadNum(Long readNum) {
        this.readNum = readNum;
    }

    public Long getUnreadNum() {
        return unreadNum;
    }

    public void setUnreadNum(Long unreadNum) {
        this.unreadNum = unreadNum;
    }

    public Long[] getClazzIds() {
        return clazzIds;
    }

    public void setClazzIds(Long[] clazzIds) {
        this.clazzIds = clazzIds;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("noticeId", getNoticeId())
                .append("noticeTitle", getNoticeTitle())
                .append("noticeType", getNoticeType())
                .append("noticeContent", getNoticeContent())
                .append("status", getStatus())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .append("bizNoticeDetailList", getDetails())
                .toString();
    }
}
